package modelo.controles.tests;

import static org.junit.Assert.assertTrue;

import java.util.ArrayList;

import org.junit.Test;

import modelo.carrera.Conductor;
import modelo.comportamiento.Comportamiento;
import modelo.comportamiento.Conciencia;
import modelo.comportamiento.acciones.Acelerar;
import modelo.controles.Control;
import modelo.escenario.Ciudad;
import modelo.geometria.Vector;
import modelo.vehiculos.Colectivo;
import modelo.vehiculos.SentidoVehiculo;

public class TestCamara {

	@Test
	public void TestCamara_ColectivoExcedeLimiteVelocidadEnPaseoColonYMexico_GeneraInfraccion(){
		
		Conductor conductor = new Conductor(new Comportamiento(new Conciencia()));
		Vector posicionColectivo_PaseoColon_Mexico = new Vector(35,18);
		SentidoVehiculo sentidoVehiculo = SentidoVehiculo.NORTE;
		double ancho = 3;
		double largo = 2;
			
		double velocidadActual = 30;
		double velocidadMaxima = 100;
		double aceleracionMaxima = 5;
		double frenadoMaximo = 50;
		
		Colectivo colectivo = new Colectivo(conductor, posicionColectivo_PaseoColon_Mexico, posicionColectivo_PaseoColon_Mexico, sentidoVehiculo, largo, ancho, velocidadActual, velocidadMaxima, aceleracionMaxima, frenadoMaximo, null);
		colectivo.manejar(new Acelerar(70, 100));
	
		ArrayList<Control> controles = Ciudad.getCiudad().getControles();
		for (Control control : controles)
			control.analizar(colectivo);
		
		assertTrue(colectivo.hasInfracciones());
	}
}
